# -*- coding: UTF-8 -*-    
# Author:yangshuoshuo
# FileName:praactice_01
# DateTime:2024/5/20 21:08
# SoftWare: PyCharm

"""
编写一个Python程序，实现一个简单的猜拳游戏。玩家和电脑各自选择石头、剪刀或布，根据规则判断胜负关系，并输出比赛结果。

import random

while True:
    print("猜拳游戏开始！")
    player = input("请出拳（石头/剪刀/布）：")
    computer = random.choice(["石头", "剪刀", "布"])

    print(f"电脑出拳{computer}")

    if player == computer:
        print("平局")
        break
    elif (player == "石头" and computer == "剪刀") or \
            (player == "剪刀" and computer == "布") or \
            (player == "布" and computer == "石头"):
        print("玩家赢了！")
    else:
        print("电脑赢了!")
"""

"""
编写一个 Python 程序，用户输入一个分数，程序将根据分数判断并输出相应的等级。分数在 90 分及以上为 A 等级，
60 -89 分为 B 等级，否则为 C 等级。

while True:
    score = int(input("请输入分数（0-100）：\n"))

    if 90 <= score <= 100:
        print(f"分数{score}为A等级")
    elif 60 <= score <= 89:
        print(f"分数{score}为B等级")
    elif 0 <= score < 60:
        print(f"分数{score}为C等级")
    else:
        print(f"分数{score}不合法")
        break
"""

"""
编写一个简单的Python程序，实现一个简易的计算器。用户可以输入两个数字和一个运算符（+、-、*、/），
程序将根据运算符执行相应的计算操作，并输出结果。

while True:
    number1 = float(input("请输入第一个数字："))
    number2 = float(input("请输入第二个数字："))
    operate = input("请输入一个运算符（+、-、*、/）：")

    if operate == "+":
        result = number1 + number2
    elif operate == "-":
        result = number1 - number2
    elif operate == "*":
        result = number1 * number2
    elif operate == "/":
        result = number1 / number2
    else:
        print("输入有误")
        break
    print(f"{number1} {operate} {number2} = {result}")
"""

"""
编写一个 Python 程序，实现一个猜数字的游戏。程序随机生成一个1-100目标数字，在一定的范围内，玩家需要根据提示猜测目标数字，
直到猜中为止。游戏会根据玩家的猜测给出提示，告诉玩家猜的数字是大了还是小了，最终告诉玩家猜对了，并显示猜测次数。

random_number = random.randint(1, 100)
guess_count = 0

while True:
    player = int(input("请输入你猜的数字（1-100）：\n"))
    if player > random_number:
        print("大了")
        guess_count += 1
    elif player < random_number:
        print("小了")
        guess_count += 1
    else:
        print(f"随机数{random_number} = 玩家猜数{player}，第{guess_count + 1}次猜对了")
        break
"""

"""
列表中保存若干个数字，计算数字的和，最小值，最大值，平均数

data = [1, 2, 3, 4, 5, 6, 7, 8, 9]
data_sum = 0
data_max = data[0]
data_min = data[0]

for i in data:
    data_sum += i
    if data_max < i:
        data_max = i
    elif data_min > i:
        data_min = i
data_avg = data_sum / len(data)

print(f"最大值为{data_max},最小值为{data_min},总和为{data_sum},平均数为{data_avg}")
"""

"""
编写一个 Python 程序，找出100-999范围内的水仙花数。所谓"水仙花数"是指一个三位数，其各位数字立方和等于该数本身。
例如：153是一个"水仙花数"，因为153=1的三次方＋5的三次方＋3的三次方。

for i in range(100, 1000):
    bai = i // 100
    shi = i % 100 // 10
    ge = i % 10
    if (bai ** 3) + (ge ** 3) + (shi ** 3) == i:
        print(i)
"""

"""
编写一个 Python 程序，输入一个整数，计算该整数的二进制表示形式

data_num = int(input("请输入一个十进制整数："))

result = ""
while data_num != 0:
    tmp = data_num % 2
    data_num = data_num // 2
    result = str(tmp) + result
print(result)


requestMethods = {
                    "get": "用于获取服务器上的资源，通过在URL中传递参数来发送请求。",
                    "post": "用于向服务器提交数据，一般用于创建新的资源或进行修改操作。",
                    "put": "用于更新服务器上的资源，一般用于修改已存在的资源的全部内容。",
                    "delete": "用于删除服务器上的资源。"
                }
for method in requestMethods:
    print(method)
"""

"""
编写一个Python程序，来计算给定文本中每个单词出现的次数。

text = "Python is a popular programming language. It is widely used for web development, data science, and more. \
Python has a simple and readable syntax, which makes it great for beginners."

words = text.lower().split()
word_count = {}

for word in words:
    word = word.strip(".,!?")
    if word in word_count.keys():
        word_count[word] += 1
    else:
        word_count[word] = 1

for word, count in word_count.items():
    print(f"{word}: {count}次")
"""

"""
编写一个Python程序，使用for循环，生成并输出斐波那契数列的前n项，其中n是用户指定的正整数。
斐波那契数列，又称黄金分割数列，指的是：0、1、1、2、3、5、8、13、21、34....从第三个数开始，每个数字都是前两个数字之和。

n = int(input("请输入正整数n:"))
fibs = []

for i in range(n):
    if i == 0:
        fibs.append(1)
    elif i == 1:
        fibs.append(1)
    else:
        fibs.append(fibs[i - 1] + fibs[i - 2])

print(f"斐波那契数列的前 {n} 项为：{fibs}")
"""

"""
编写一个Python程序，输入一个5位数，判断输入的这个数字是否为回文数。回文数是指从左到右和从右到左读都一样的数。
例如12321。如果输入的是回文数，输出是回文数，否则输出不是回文数。（使用循环进行实现）

input_num = input("请输入一个数字：")
flag = True

for i in range(len(input_num) // 2):
    if input_num[i] != input_num[-i - 1]:
        flag = False
        break
if flag:
    print(f"{input_num}是回文数")
else:
    print(f"{input_num}不是回文数")
"""

"""
def count_call(func):
    init_call = 0

    def wrapper(*args, **kwargs):
        nonlocal init_call
        init_call += 1
        print(f"函数'{func.__name__}'已被调用{init_call}次")
        return func(*args, **kwargs)

    return wrapper


@count_call
def greet(name):
    return f"hell, {name}"


greet("tom")
"""
